export default {
  namespaced: true,
  state: {
    // 购物车中的商品
    items: [
    ],
    // 总价格
    total: 0,
    // 是否全选
    allChecked: true
  },
  mutations: {
    set_total (state, total) {
      // 计算总价格
      state.total = total
    },
    set_items (state, items) {
      // 改变购买商品
      state.items = items
    },
    set_allChecked (state, allCheck) {
      // 改变全选状态
      state.allChecked = allCheck
    },
    set_all_item_check (state, allCheck) {
      /*
      全选选中和取消选中 改变单选
      */
      state.items.forEach(item => { item.checked = allCheck })
    },
    add_cart (state, item) {
      /*
      添加之前 判断购物车中是否已经有该商品
      有 数量+1 不再添加进购物车新的商品
      没有 增加一条商品
      */
      //  如何判断购物车中已经存在该商品呢
      const items = state.items
      // 判断 items中是否有item
      /*
      findIndex 查询到符合条件的元素后返回所在下标 查不到 返回-1
      find 查到符合条件元素，返回 这个元素
      */
      const index = items.findIndex(el => item.id === el.id)
      if (index === -1) {
        // 购物车中没有改商品 直接添加
        state.items.push(item)
      } else {
        // 购物车中已经存在该商品 num+1
        state.items[index].num++
      }
    }
  }
}
